The Beauty and Joy of Computing
Catalog Description: An introductory course for students with minimal prior exposure to computer science.
Prepares students for future computer science courses and empowers them to utilize programming to solve problems in their field of study. Presents an overview of the history, great principles, and transformative applications of computer science, as well as a comprehensive introduction to programming. Topics include abstraction, recursion, algorithmic complexity, higher-order functions, concurrency, social implications of computing (privacy, education, algorithmic bias), and engaging research areas (data science, AI, HCI). Students will program in Snap! (a friendly graphical language) and Python, and will design and implement two projects of their choice.
Units: 4
Formats:
Fall: 2.0 hours of lecture, 1.0 hours of discussion, and 4.0 hours of laboratory per week
Summer: 4.0 hours of lecture, 2.0 hours of discussion, and 8.0 hours of laboratory per week
Spring: 2.0 hours of lecture, 1.0 hours of discussion, and 4.0 hours of laboratory per week
Final exam status:
Written final exam conducted during the scheduled final exam period